from collections import deque

xx, yy = [1, 0, -1, 0], [0, 1, 0, -1]

def bfs():
    S, Q = set(), deque([st])
    while Q:
        q = Q.popleft()
        u = q[:2]
        if u in S: continue
        if u == ed:
            return q[2]
        S.add(u)
        for i in range(4):
            tx, ty = u[0] + xx[i], u[1] + yy[i]
            if tx < 0 or ty < 0 or tx == n or ty == m or a[tx][ty] == "#": continue
            Q.append((tx, ty, q[2] + 1))
    return -1
n, m = map(int, input().split())
a = []
for i in range(n):
    a.append(list(input()))
    for j in range(m):
        if a[i][j] == "S": st = i, j, 0
        if a[i][j] == "T": ed = i, j
print(bfs())
# -------------------------------------------------------------------------------

# 比赛环境为python3.8.6版本自带的IDLE，最好早点熟悉一下。。这个东西的提示时有时无

# 菜单栏最右边的Help的Python Docs 比赛时候也可以看，不过建议还是提前多了解了解，

# 比赛的时候至少知道在文档找什么能用的上。

# IDLE是下载Python时自带的，在按住win+s搜索IDLE就能搜到了。

# 然后点左上角的File可以创建新文件，然后按F5可以运行。
